home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 25 / CU Amiga Magazine's Super CD-ROM 25 (1998)(EMAP Images)(GB)(Track 1 of 2)[!][issue 1998-08].iso / CUCD / Programming / QuakeTools / src / libqbuild / gldraw.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-06-11  |  3.1 KB  |  185 lines

  1. #define    LIBQBUILD_CORE
  2. #include "../include/libqbuild.h"
  3. #include <gl/gl.h>
  4. #include <gl/glu.h>
  5. #include <gl/gltk.h>
  6. #include <gl/glaux.h>
  7.  
  8. vec3_t draw_mins, draw_maxs;
  9.  
  10. #define    WIN_SIZE    512
  11.  
  12. void Draw_Init(void)
  13. {
  14.   auxInitDisplayMode(AUX_SINGLE | AUX_RGB);
  15.   auxInitPosition(0, 0, WIN_SIZE, WIN_SIZE);
  16.   auxInitWindow("qcsg");
  17. }
  18.  
  19. void Draw_Exit(void)
  20. {
  21.   auxCloseWindow();
  22.   auxQuit();
  23. }
  24.  
  25. void Draw_ClearBounds(void)
  26. {
  27.   if(drawflag == TRUE) {
  28.   }
  29. }
  30.  
  31. void Draw_AddToBounds(vec3_t v)
  32. {
  33.   if(drawflag == TRUE) {
  34.   }
  35. }
  36.  
  37. void Draw_DrawFace(struct visfacet * f)
  38. {
  39.   if(drawflag == TRUE) {
  40.     int i;
  41.  
  42.     glColor4f(0, 0, 0, 0.5);
  43.     glBegin(GL_LINE_LOOP);
  44.     for (i = 0; i < f->numpoints; i++)
  45.       glVertex3f(f->pts[i][0], f->pts[i][1], f->pts[i][2]);
  46.     glEnd();
  47.  
  48.     glColor4f(0, 1, 0, 0.3);
  49.     glBegin(GL_POLYGON);
  50.     for (i = 0; i < f->numpoints; i++)
  51.       glVertex3f(f->pts[i][0], f->pts[i][1], f->pts[i][2]);
  52.     glEnd();
  53.  
  54.     glFlush();
  55.   }
  56. }
  57.  
  58. void Draw_ClearWindow(void)
  59. {
  60.   if(drawflag == TRUE) {
  61.     int w, h, g;
  62.     vec_t mx, my;
  63.  
  64.     glClearColor(1, 0.8, 0.8, 0);
  65.     glClear(GL_COLOR_BUFFER_BIT);
  66.  
  67.     w = (draw_maxs[0] - draw_mins[0]);
  68.     h = (draw_maxs[1] - draw_mins[1]);
  69.  
  70.     mx = draw_mins[0] + w / 2;
  71.     my = draw_mins[1] + h / 2;
  72.  
  73.     g = w > h ? w : h;
  74.  
  75.     glLoadIdentity();
  76.     gluPerspective(90, 1, 2, 16384);
  77.     gluLookAt(mx, my, draw_maxs[2] + g / 2, mx, my, draw_maxs[2], 0, 1, 0);
  78.  
  79.     glColor3f(0, 0, 0);
  80. //  glPolygonMode (GL_FRONT_AND_BACK, GL_LINE);
  81.     glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
  82.     glDisable(GL_DEPTH_TEST);
  83.     glEnable(GL_BLEND);
  84.     glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
  85.  
  86. #if 0
  87.     glColor4f(1, 0, 0, 0.5);
  88.     glBegin(GL_POLYGON);
  89.  
  90.     glVertex3f(0, 500, 0);
  91.     glVertex3f(0, 900, 0);
  92.     glVertex3f(0, 900, 100);
  93.     glVertex3f(0, 500, 100);
  94.  
  95.     glEnd();
  96. #endif
  97.  
  98.     glFlush();
  99.   }
  100. }
  101.  
  102. void Draw_SetRed(void)
  103. {
  104.   if(drawflag == TRUE) {
  105.     glColor3f(1, 0, 0);
  106.   }
  107. }
  108.  
  109. void Draw_SetGrey(void)
  110. {
  111.   if(drawflag == TRUE) {
  112.     glColor3f(0.5, 0.5, 0.5);
  113.   }
  114. }
  115.  
  116. void Draw_SetBlack(void)
  117. {
  118.   if(drawflag == TRUE) {
  119.     glColor3f(0, 0, 0);
  120.   }
  121. }
  122.  
  123. void DrawPoint(vec3_t v)
  124. {
  125.   if(drawflag == TRUE) {
  126.     glColor4f(0, 0.5, 0.5, 0.5);
  127.     glBegin(GL_POINTS);
  128.     glVertex3f(v[0], v[1], v[2]);
  129.     glEnd();
  130.  
  131.     glFlush();
  132.   }
  133. }
  134.  
  135. void DrawLeaf(struct node * l, int color)
  136. {
  137. }
  138.  
  139. void DrawBrush(struct brush * b)
  140. {
  141.   if(drawflag == TRUE) {
  142.   }
  143. }
  144.  
  145. void DrawWinding(struct winding * w)
  146. {
  147.   if(drawflag == TRUE) {
  148.     int i;
  149.  
  150.     glColor4f(0, 0, 0, 0.5);
  151.     glBegin(GL_LINE_LOOP);
  152.     for (i = 0; i < w->numpoints; i++)
  153.       glVertex3f(w->p[i][0], w->p[i][1], w->p[i][2]);
  154.     glEnd();
  155.  
  156.     glColor4f(0, 1, 0, 0.3);
  157.     glBegin(GL_POLYGON);
  158.     for (i = 0; i < w->numpoints; i++)
  159.       glVertex3f(w->p[i][0], w->p[i][1], w->p[i][2]);
  160.     glEnd();
  161.  
  162.     glFlush();
  163.   }
  164. }
  165.  
  166. void DrawTri(vec3_t p1, vec3_t p2, vec3_t p3)
  167. {
  168.   if(drawflag == TRUE) {
  169.     glColor4f(0, 0.5, 0, 0.5);
  170.     glBegin(GL_TRIANGLES);
  171.     glVertex3f(p1[0], p1[1], p1[2]);
  172.     glVertex3f(p2[0], p2[1], p2[2]);
  173.     glVertex3f(p3[0], p3[1], p3[2]);
  174.     glEnd();
  175.  
  176.     glFlush();
  177.   }
  178. }
  179.  
  180. void DrawPortal(struct portal * portal)
  181. {
  182.   if(drawflag == TRUE) {
  183.   }
  184. }
  185.